package com.sumi.erp.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sumi.common.annotation.Excel;
import com.sumi.common.core.domain.BaseEntity;

/**
 * 采购单主对象 order_purchase
 * 
 * @author fgf67@163.com
 * @date 2024-06-27
 */
public class OrderPurchase extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /**  采购单id */
    private Long id;

    /** 公司父级id */
    @Excel(name = "公司父级id")
    private Long blocId;

    /** 公司id */
    @Excel(name = "公司id")
    private Long sellerId;

    /** 单据类型id */
    @Excel(name = "单据类型id")
    private Long docTypeId;

    /** 订单日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date purchaseDate;

    /** 订单key */
    @Excel(name = "订单key")
    private String purchaseKey;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private Integer status;

    /** 采购给某部门id */
    @Excel(name = "采购给某部门id")
    private Long purchaseDepartmentId;

    /** 采购代表部门id */
    @Excel(name = "采购代表部门id")
    private Long departmentId;

    /** 采购代表id */
    @Excel(name = "采购代表id")
    private Long workerId;

    /** 供应商id */
    @Excel(name = "供应商id")
    private Long partnerId;

    /** 业务类型 */
    @Excel(name = "业务类型")
    private String businessType;

    /** 结算方式(用于外币采购) */
    @Excel(name = "结算方式(用于外币采购)")
    private String settlementMethod;

    /** 联系人姓名 */
    @Excel(name = "联系人姓名")
    private String contactsName;

    /** 联系人手机/电话 */
    @Excel(name = "联系人手机/电话")
    private String contactsTel;

    /** 收款银行id */
    @Excel(name = "收款银行id")
    private Long bankId;

    /** 实物仓库id */
    @Excel(name = "实物仓库id")
    private Long realWarehouseId;

    /** 城市id(仓库所在城市) */
    @Excel(name = "城市id(仓库所在城市)")
    private Long regionId;

    /** 城市名称(仓库所在城市) */
    @Excel(name = "城市名称(仓库所在城市)")
    private String regionName;

    /** 仓库地点(仓库所在地点) */
    @Excel(name = "仓库地点(仓库所在地点)")
    private String locationAddr;

    /** 单位 */
    @Excel(name = "单位")
    private String uom;

    /** 币种 */
    @Excel(name = "币种")
    private String currency;

    /** 币种汇率 */
    @Excel(name = "币种汇率")
    private BigDecimal currencyRate;

    /** 税率 */
    @Excel(name = "税率")
    private BigDecimal taxRate;

    /** 订单总金额 */
    @Excel(name = "订单总金额")
    private BigDecimal totalOrderAmount;

    /** 预付款总金额 */
    @Excel(name = "预付款总金额")
    private BigDecimal totalDepositAmount;

    /** 已支付总金额 */
    @Excel(name = "已支付总金额")
    private BigDecimal totalPayAmount;

    /** 协议编号(用于外币采购) */
    @Excel(name = "协议编号(用于外币采购)")
    private String contractNo;

    /** 协议日期(用于外币采购) */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "协议日期(用于外币采购)", width = 30, dateFormat = "yyyy-MM-dd")
    private Date contractTime;

    /** 代理开证公司(用于外币采购) */
    @Excel(name = "代理开证公司(用于外币采购)")
    private String agencyCompanyId;

    /** 代理费(0无 1有) */
    @Excel(name = "代理费(0无 1有)")
    private Integer agencyFees;

    /** 审核确认时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核确认时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date approvalTime;

    /** 创建人id */
    @Excel(name = "创建人id")
    private Long createUid;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setBlocId(Long blocId) 
    {
        this.blocId = blocId;
    }

    public Long getBlocId() 
    {
        return blocId;
    }
    public void setSellerId(Long sellerId) 
    {
        this.sellerId = sellerId;
    }

    public Long getSellerId() 
    {
        return sellerId;
    }
    public void setDocTypeId(Long docTypeId) 
    {
        this.docTypeId = docTypeId;
    }

    public Long getDocTypeId() 
    {
        return docTypeId;
    }
    public void setPurchaseDate(Date purchaseDate) 
    {
        this.purchaseDate = purchaseDate;
    }

    public Date getPurchaseDate() 
    {
        return purchaseDate;
    }
    public void setPurchaseKey(String purchaseKey) 
    {
        this.purchaseKey = purchaseKey;
    }

    public String getPurchaseKey() 
    {
        return purchaseKey;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }
    public void setPurchaseDepartmentId(Long purchaseDepartmentId) 
    {
        this.purchaseDepartmentId = purchaseDepartmentId;
    }

    public Long getPurchaseDepartmentId() 
    {
        return purchaseDepartmentId;
    }
    public void setDepartmentId(Long departmentId) 
    {
        this.departmentId = departmentId;
    }

    public Long getDepartmentId() 
    {
        return departmentId;
    }
    public void setWorkerId(Long workerId) 
    {
        this.workerId = workerId;
    }

    public Long getWorkerId() 
    {
        return workerId;
    }
    public void setPartnerId(Long partnerId) 
    {
        this.partnerId = partnerId;
    }

    public Long getPartnerId() 
    {
        return partnerId;
    }
    public void setBusinessType(String businessType) 
    {
        this.businessType = businessType;
    }

    public String getBusinessType() 
    {
        return businessType;
    }
    public void setSettlementMethod(String settlementMethod) 
    {
        this.settlementMethod = settlementMethod;
    }

    public String getSettlementMethod() 
    {
        return settlementMethod;
    }
    public void setContactsName(String contactsName) 
    {
        this.contactsName = contactsName;
    }

    public String getContactsName() 
    {
        return contactsName;
    }
    public void setContactsTel(String contactsTel) 
    {
        this.contactsTel = contactsTel;
    }

    public String getContactsTel() 
    {
        return contactsTel;
    }
    public void setBankId(Long bankId) 
    {
        this.bankId = bankId;
    }

    public Long getBankId() 
    {
        return bankId;
    }
    public void setRealWarehouseId(Long realWarehouseId) 
    {
        this.realWarehouseId = realWarehouseId;
    }

    public Long getRealWarehouseId() 
    {
        return realWarehouseId;
    }
    public void setRegionId(Long regionId) 
    {
        this.regionId = regionId;
    }

    public Long getRegionId() 
    {
        return regionId;
    }
    public void setRegionName(String regionName) 
    {
        this.regionName = regionName;
    }

    public String getRegionName() 
    {
        return regionName;
    }
    public void setLocationAddr(String locationAddr) 
    {
        this.locationAddr = locationAddr;
    }

    public String getLocationAddr() 
    {
        return locationAddr;
    }
    public void setUom(String uom) 
    {
        this.uom = uom;
    }

    public String getUom() 
    {
        return uom;
    }
    public void setCurrency(String currency) 
    {
        this.currency = currency;
    }

    public String getCurrency() 
    {
        return currency;
    }
    public void setCurrencyRate(BigDecimal currencyRate) 
    {
        this.currencyRate = currencyRate;
    }

    public BigDecimal getCurrencyRate() 
    {
        return currencyRate;
    }
    public void setTaxRate(BigDecimal taxRate) 
    {
        this.taxRate = taxRate;
    }

    public BigDecimal getTaxRate() 
    {
        return taxRate;
    }
    public void setTotalOrderAmount(BigDecimal totalOrderAmount) 
    {
        this.totalOrderAmount = totalOrderAmount;
    }

    public BigDecimal getTotalOrderAmount() 
    {
        return totalOrderAmount;
    }
    public void setTotalDepositAmount(BigDecimal totalDepositAmount) 
    {
        this.totalDepositAmount = totalDepositAmount;
    }

    public BigDecimal getTotalDepositAmount() 
    {
        return totalDepositAmount;
    }
    public void setTotalPayAmount(BigDecimal totalPayAmount) 
    {
        this.totalPayAmount = totalPayAmount;
    }

    public BigDecimal getTotalPayAmount() 
    {
        return totalPayAmount;
    }
    public void setContractNo(String contractNo) 
    {
        this.contractNo = contractNo;
    }

    public String getContractNo() 
    {
        return contractNo;
    }
    public void setContractTime(Date contractTime) 
    {
        this.contractTime = contractTime;
    }

    public Date getContractTime() 
    {
        return contractTime;
    }
    public void setAgencyCompanyId(String agencyCompanyId) 
    {
        this.agencyCompanyId = agencyCompanyId;
    }

    public String getAgencyCompanyId() 
    {
        return agencyCompanyId;
    }
    public void setAgencyFees(Integer agencyFees) 
    {
        this.agencyFees = agencyFees;
    }

    public Integer getAgencyFees() 
    {
        return agencyFees;
    }
    public void setApprovalTime(Date approvalTime) 
    {
        this.approvalTime = approvalTime;
    }

    public Date getApprovalTime() 
    {
        return approvalTime;
    }
    public void setCreateUid(Long createUid) 
    {
        this.createUid = createUid;
    }

    public Long getCreateUid() 
    {
        return createUid;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("blocId", getBlocId())
            .append("sellerId", getSellerId())
            .append("docTypeId", getDocTypeId())
            .append("purchaseDate", getPurchaseDate())
            .append("purchaseKey", getPurchaseKey())
            .append("status", getStatus())
            .append("purchaseDepartmentId", getPurchaseDepartmentId())
            .append("departmentId", getDepartmentId())
            .append("workerId", getWorkerId())
            .append("partnerId", getPartnerId())
            .append("businessType", getBusinessType())
            .append("settlementMethod", getSettlementMethod())
            .append("contactsName", getContactsName())
            .append("contactsTel", getContactsTel())
            .append("bankId", getBankId())
            .append("realWarehouseId", getRealWarehouseId())
            .append("regionId", getRegionId())
            .append("regionName", getRegionName())
            .append("locationAddr", getLocationAddr())
            .append("uom", getUom())
            .append("currency", getCurrency())
            .append("currencyRate", getCurrencyRate())
            .append("taxRate", getTaxRate())
            .append("totalOrderAmount", getTotalOrderAmount())
            .append("totalDepositAmount", getTotalDepositAmount())
            .append("totalPayAmount", getTotalPayAmount())
            .append("contractNo", getContractNo())
            .append("contractTime", getContractTime())
            .append("agencyCompanyId", getAgencyCompanyId())
            .append("agencyFees", getAgencyFees())
            .append("remark", getRemark())
            .append("approvalTime", getApprovalTime())
            .append("createTime", getCreateTime())
            .append("createUid", getCreateUid())
            .toString();
    }
}
